// 该文件主要用于：创建并暴露一个store实例
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  actions:{
    /* 
      1.jia方法何时用？—— 有人联系actions中的jia的时候
      2.jia方法会收到哪些参数？
          —— context（集装箱，放置着我们可能用到的各种东西，但现在只用commit）
          —— value（组件那边携带过来的数据）
      3.jia方法中的this是谁？—— Store实例对象（不常用，因为有了context）
    */
    jia({commit},value){
      console.log('actions中的jia执行了',value)
      // 下面这行的含义是：联系mutations中的jia
      commit('JIA',value)
    }
  },
  mutations:{
    /* 
        1.jia方法何时用？—— 有人联系mutations中的jia的时候
        2.jia方法会收到哪些参数？
            —— state：最新的数据
            —— value：要操作的值
        2.jia方法中的this是谁？—— Store实例对象（不常用，因为有了state）
    */
    JIA(state,value){
      console.log('mutations中的jia执行了',state,value)
      // 修改state
      state.sum += value
    }
  },
  // 配置state的初始值
  state:{
    sum:1
  }
})